bitkeeper revision 1.1159.1.440 (419e90a0wC3wpCnc_7gY99KZqDBSPA)
authorcl349@arcadians.cl.cam.ac.uk <cl349@arcadians.cl.cam.ac.uk>
Sat, 20 Nov 2004 00:32:32 +0000 (00:32 +0000)
committercl349@arcadians.cl.cam.ac.uk <cl349@arcadians.cl.cam.ac.uk>
Sat, 20 Nov 2004 00:32:32 +0000 (00:32 +0000)
sync w/ head.

xen/arch/x86/traps.c
xen/common/physdev.c

index 8fd3295e49a64c1f1a13e8b2df98c07f64fb59d3..c34d2f7a263c237c30120290b50728de2366b372 100644 (file)
@@ -391,7 +391,7 @@ asmlinkage int do_page_fault(struct xen_regs *regs, long error_code)
              ((error_code & 3) == 3) && /* write-protection fault */
              ptwr_do_page_fault(addr) )
         {
-            if ( unlikely(d->mm.shadow_mode) )
+            if ( unlikely(ed->mm.shadow_mode) )
                 (void)shadow_fault(addr, error_code);
             return EXCRET_fault_fixed;
         }
index 036dcbfe0280271f517a431d9f59f96891aa9bac..95d506395494c1b212b562bab1fb6ff8efa053b6 100644 (file)
@@ -125,6 +125,7 @@ int physdev_pci_access_modify(
     domid_t dom, int bus, int dev, int func, int enable)
 {
     struct domain *p;
+    struct exec_domain *ed;
     struct pci_dev *pdev;
     int i, j, rc = 0;
  
@@ -145,6 +146,8 @@ int physdev_pci_access_modify(
     if ( (p = find_domain_by_id(dom)) == NULL ) 
         return -ESRCH;
 
+    ed = p->exec_domain[0];     /* XXX */
+
     /* Make the domain privileged. */
     set_bit(DF_PHYSDEV, &p->d_flags);
        /* FIXME: MAW for now make the domain REALLY privileged so that it
@@ -169,16 +172,16 @@ int physdev_pci_access_modify(
 
     /* Now, setup access to the IO ports and memory regions for the device. */
 
-    if ( p->thread.io_bitmap == NULL )
+    if ( ed->thread.io_bitmap == NULL )
     {
-        if ( (p->thread.io_bitmap = xmalloc(IOBMP_BYTES)) == NULL )
+        if ( (ed->thread.io_bitmap = xmalloc(IOBMP_BYTES)) == NULL )
         {
             rc = -ENOMEM;
             goto out;
         }
-        memset(p->thread.io_bitmap, 0xFF, IOBMP_BYTES);
+        memset(ed->thread.io_bitmap, 0xFF, IOBMP_BYTES);
 
-        p->thread.io_bitmap_sel = ~0ULL;
+        ed->thread.io_bitmap_sel = ~0ULL;
     }
 
     for ( i = 0; i < DEVICE_COUNT_RESOURCE; i++ )
@@ -195,8 +198,8 @@ int physdev_pci_access_modify(
                  "for device %s\n", dom, r->start, r->end, pdev->slot_name);
             for ( j = r->start; j < r->end + 1; j++ )
             {
-                clear_bit(j, p->thread.io_bitmap);
-                clear_bit(j / IOBMP_BITS_PER_SELBIT, &p->thread.io_bitmap_sel);
+                clear_bit(j, ed->thread.io_bitmap);
+                clear_bit(j / IOBMP_BITS_PER_SELBIT, &ed->thread.io_bitmap_sel);
             }
         }